Non-transitory computer-readable recording medium storing computer-executable instructions for information processing device, and method of controlling information processing device

ABSTRACT

An information processing device is configured to execute a management program and a print server program. The management program determines whether a non-compliant printer is connected to the information processing device, determines whether a print server program is running when the non-compliant printer is connected, starts up the print server program when the print server program is not running, and registers a print server configured by the print server program with an operating system. The print server program receives a print job designating the print server as an output destination, obtains individual print data which is printable by the non-compliant printer, and transmits the obtained individual print data to the non-compliant printer.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims priority under 35 U.S.C. § 119 from JapanesePatent Application No. 2018-065266 filed on Mar. 29, 2018. The entiresubject matter of the application is incorporated herein by reference.

BACKGROUND Technical Field

The present disclosures relate to a non-transitory computer-readablerecording medium storing computer-executable instructions forinformation processing device, and method of controlling informationprocessing device.

Related Art

Conventionally, a driverless printing technique has become widely used.The driverless printing technique is for performing printing with use ofa printing function of an OS (operating system) without installing aprinter driver in a device (e.g., an information processing device)which transmits print data to a printer.

SUMMARY

It is noted, however, if a printer (e.g., a low end printer) are notcompliance with the driverless printing technique, the printer cannotperform printing unless a printer driver is installed in the OS. Inorder to perform printing when the printer is not compliance with thedriverless printing technique and the printer driver is not installed inthe information processing device, there is known a technique in whichthe printer transmits the printer driver to the information processingdevice and the information processing device executes installing of theprinter driver therein so that the information processing devicefunctions as a printer server.

Even if the technique which operates an information processing device asa printer driver is used, when an OS environment of the informationprocessing device does not allow installation of the printer driver, theprinter, which is not compliance with the driverless printing technique(e.g., AirPrint®), cannot be selected with use of the printing functionof the OS of the information processing device, and printing cannot beperformed.

According to aspects of the present disclosure, there is provided anon-transitory computer-readable recording medium containingcomputer-executable instructions to be executed by a controller of aninformation processing device. The instructions including firstinstructions constituting a management program and second instructionsconstituting a print server program. The first instructions cause, whenexecuted by the controller, the information processing device to performa first connection determining process of determining whether aparticular printer is connected through a communication interface of theinformation processing device, when it is determined in the firstconnection determining process that the particular printer is connected,a running determination process of determining whether the print serverprogram constituted by the second instructions corresponding to theparticular printer is running, when it is determined in the runningdetermination process that the print server program constituted by thesecond instructions is not running, a startup process of starting up theprint server program constituted by the second instructions, and whenthe print server program constituted by the second instructions isstarted up in the startup process, a print server registration processof registering a print server configured by the print server program asstarted up with an operating system of the information processing deviceas a printer. The second instructions cause, when executed by thecontroller, the information processing device to perform a receivingprocess of receiving, through the operating system, a print jobdesignating the registered print server as an output destination, whenthe print job is received in the receiving process, print data obtainingprocess of obtaining print data having a particular format printable bythe particular printer based on the print job, and a transmittingprocess of transmitting the print data obtained in the print dataobtaining process to the particular printer.

According to aspects of the present disclosure, there is provided amethod of controlling an information processing device. The methodincluding determining whether a particular printer is connected througha communication interface of the information processing device, when itis determined that the particular printer is connected, determiningwhether a print server program corresponding to the particular printeris running, when it is determined that the print server program is notrunning, starting up the print server program, when the print serverprogram is started up, registering a print server configured by theprint server program as started up with an operating system of theinformation processing device as a printer, receiving, through theoperating system, a print job designating the registered print server asan output destination, when the print job is received, obtaining printdata having a particular format printable by the particular printerbased on the print job, and transmitting the obtained print data to theparticular printer.

BRIEF DESCRIPTION OF THE ACCOMPANYING DRAWINGS

FIG. 1 is a block diagram schematically showing a configuration of aninformation processing device according to an illustrative embodiment ofthe present disclosures to which printers are connected.

FIG. 2 illustrates printing procedures with use of a printer compliantwith a driverless printing and a printer noncompliant with thedriverless printing.

FIG. 3 is a sequential chart showing invocation and registration of aprint server.

FIG. 4 is a sequential chart showing printing with use of a printserver.

FIG. 5 is a sequential chart showing termination of the print server.

FIG. 6 is a flowchart illustrating a sever invocation process.

FIG. 7 illustrates usage of a print server program of anotherinformation processing device.

FIG. 8 is a flowchart illustrating a print server process.

FIG. 9 is a flowchart illustrating a printing process.

DETAILS DESCRIPTION OF ILLUSTRATIVE EMBODIMENT

Hereinafter, referring to the accompanying drawings, an applicationprogram (hereinafter, referred to as “APP”) according to an illustrativeembodiment of the present disclosures will be described. The APPdescribed hereinafter enables an information processing device to causethe printer to perform printing.

The APP is executed by the information processing device 1 to whichprinters 2 and 3 are connected (FIG. 1). The information processingdevice 1 is, for example, a personal computer, a smartphone, a tabletcomputer or the like, which is configured to generate and edit imagedata, transmit a print execution command to respective printers 2 and 3,and the like.

The information processing device 1 is provided with, as shown in FIG.1, a controller 10 including a CPU 11, a ROM 12, a RAM 13, anon-volatile memory 14. The information processing device 1 is furtherprovided with a user I/F 15, a network I/F 16, a USB I/F 17 which areelectrically connected to the controller 10. The CPU 11 is an example ofa controller. A buffer of the CPU 11, the ROM 12, the RAM 13, thenon-volatile memory 14 are examples of a memory. Each of the network I/F16 and the USB I/F 17 is an example of a communication interface.

The ROM 12 stores a startup program for starting up the informationprocessing device 1. The RAM 13 is used as a work area when variousprocesses are performed and/or a storage area for temporarily storingdata. The non-volatile memory 14 is, for example, an HDD or a flashmemory, which is used as an area for storing programs, various pieces ofdata (e.g., image data), and various settings.

The CPU 11 performs various processes in accordance with programsretrieved from the ROM 12 and non-volatile memory 14, or based on useroperations. It is noted that the controller 10 is a collective nameincluding hardware and software used to control the informationprocessing device 1, and does not necessarily mean a single hardwareexisting in the information processing device 1.

The user I/F 15 is hardware which receives user operations and displaysinformation. The user I/F 15 may be one having both an input functionand an output function (e.g., a touch panel), or may be configured as acombination of a plurality of devices such as a display, a keyboard anda mouse.

The network I/F 16 includes hardware used to communicate with externaldevices through a network such as the Internet. A communication standardemployed in the network I/F 16 is, for example, Ethernet®, Wi-Fi® or thelike. The USB I/F 17 includes hardware performing communicationcompliant with a USB standard. It is noted that a communication methodemployed by the network I/F 16 and the USB I/F 17 may be a wirelesscommunication or a wired communication.

The information processing device 1 according to the illustrativeembodiment has a driverless printing function which is a function toperform printing without a printer driver being installed. Thedriverless printing function is a printing function of generating aprint job including standardized print data which is general purposeprint data independent of printer models, and transmitting the generatedprint job to the printer. Examples of the driverless printing functionare AirPrint® and Mopria®.

As shown in FIG. 1, two printers 2 and 3 are connected to theinformation processing device 1. Each of the printers 2 and 3 can forman image on a printing medium. Examples of the printers 2 and 3 are apage printer, a copier, an MFP and a facsimile machine.

The printer 2 is connected to the information processing device 1through the network I/F 16. The printer 2 is compliant with thedriverless printing function of the information processing device 1. Inthe following description, the printer 2 will occasionally be referredto as a compliant printer 2. The compliant printer 2 has a program forgenerating image data for printing (hereinafter, referred to as printingimage data) used by itself (i.e., the printer 2) based on thestandardized print data of the print job transmitted from theinformation processing device 1. The compliant printer 2 generates theprinting image data based on the received standardized print data, andperforms printing with use of the generated printing image data.

The printer 3 is connected to the information processing device 1through the network I/F 16 or the USB I/F 17. The printer 3 is notcompliant with the driverless printing function of the informationprocessing device 1. In the following description, the printer 3 willoccasionally be referred to as a non-compliant printer 3. Thenon-compliant printer 3 does not have a function to generate theprinting image data based on the standardized print data. Therefore, thenon-compliant printer 3 cannot perform printing even if the standardizedprint data is received. When processible print data is received, thenon-compliant printer 3 uses the received print data as the printingimage data, or converts the received print data to the printing imagedata, and performs printing. Further, the non-compliant printer 3 doesnot respond to a printer detection signal in accordance with thedriverless printing function. Therefore, the information processingdevice 1 performing the driverless printing function does not recognizethe non-compliant printer 3 as a printing device. The non-compliantprinter 3 is an example of a particular printer.

The information processing device 1 has a APP causing the non-compliantprinter 3 to perform printing. As shown in FIG. 1, in the non-volatilememory 14 of the information processing device 1, various programsincluding an OS 41, a content generating APP 42, a management program 43and a print server program 44 are stored. It is noted that a part of theOS 41 may be stored in the ROM 12.

The OS 41 of the information processing device 1 has the driverlessprinting function, and does not accept installation of a printer drivercorresponding to an individual model of a printer. Therefore, in thenon-volatile memory 14 of the information processing device 1, a printerdriver program for the non-compliant printer 3 is not stored.

The content generating APP 42 is for generating a content subject to beprinted (e.g., a text, an image, a chart and etc.). The contentgenerating APP 42 has a function of receiving a print command based on auser operation. It is noted that the information processing device 1 maybe provided with a plurality of content generating APP's 42.

The management program 43 and the print server program 44 are used whenthe non-compliant printer 3 connected to the information processingdevice 1 is used to perform printing based on the content generated bythe content generating APP 42 or the like. The management program 43 andthe print server program 44 are examples of an application program.

The management program 43 starts up the print server program 44corresponding to the non-compliant printer 3, and registers a printserver configured by the print server program 44 with the OS 41 as avirtual printer. By registering the print server with the OS 41 as thevirtual printer, it becomes possible that the content generating APP 42selects the virtual printer as an output destination. The print serverprogram 44 is a program which converts the print job output by thedriverless printing function of the OS 41 to a format which can beprocessed by the non-compliant printer 3, and transmits the convertedprint job to the non-compliant printer 3.

It is noted that a single management program 43 is provided per thesingle information processing device 1, while a single print serverprogram 44 is provided per each non-compliant printer 3. When aplurality of non-compliant printers 3 are connected to the informationprocessing device 1, the print servers are started up for respectivenon-compliant printers 3, and registered with the OS 41 as virtualprinters respectively corresponding to the non-compliant printers 3.

As shown in FIG. 2, the information processing device 1 performsdifferent processes when causing the compliant printer 2 to performprinting and when causing the non-compliant printer 3 to performprinting. When, for example, a print command is received from thecontent generating APP 42 and the received print command designates thecompliant printer 2, the OS 41 of the information processing device 1transmits standardized print data, which is generated with use of thedriverless printing function, to the compliant printer 2. In response toreceipt of the standardized print data, the compliant printer 2 performsprinting based on the standardized print data as received.

When the printer designated by the print command is the virtual printercorresponding to the non-compliant printer 3, the information processingdevice 1 delivers the standardized print data generated with use of thedriverless printing function to the print server program 44. The printserver program 44 obtains, based on the standardized print data, theindividual print data which is the print data having a formatprocessible by the non-compliant printer 3, and transmits the individualprint data to the non-compliant printer 3. The individual print data isan example of a particular format print data.

Next, an operation of the information processing device 1 to cause thenon-compliant printer 3 to perform printing will be described. In thefollowing description, processes and steps of flowcharts basicallyindicate processes performed by the CPU 11 following instructionsdescribed in the management program 43, the print server program 44 andthe like. The processes performed by the CPU 11 include control ofhardware with use of an interface enabling data exchange among modulesof the OS 41 of the information processing device 1 (also known as anAPI). In the specification, description on the operations performed inaccordance with the programs will be simplified by omitting descriptionon the OS 41.

Firstly, referring to sequential charts shown in FIGS. 3-5, theoperation of the information processing device 1 will be generallydescribed. Initially, a print preparation operation according to themanagement program 43 will be described, referring to the sequentialchart shown in FIG. 3. The management program 43 is started up when, forexample, the information processing device 1 is started up. When startedup, the management program 43 searches for a printer connected to theinformation processing device 1. When the management program 43 performssearching, different from a search according to the driverless printingfunction, the information processing device 1 multicasts a search signalto which the non-compliant printer 3 can reply.

Then, the management program 43 determines whether there exists anon-compliant printer 3 connected to the information processing device 1(procedure #51 of FIG. 3). When, for example, connected printer(s) isonly the compliant printer(s) 2 corresponding to the driverless printfunction, it is unnecessary for the information processing device 1 toexecute the print server program 44.

When the non-compliant printer 3 is found, the management program 43obtains printer information in order to cause the non-compliant printer3 to perform printing (procedure #52). Concretely, the managementprogram 43 obtains model information, version information and the likeof the non-compliant printer 3.

When the print server program 44 corresponding to the foundnon-compliant printer 3 is not running, the management program 43 startsup the print server program 44 (procedure #53). It is noted that, when aplurality of non-compliant printers 3 are found, the management program43 performs procedures #52 and #53 for each of the plurality ofnon-compliant printers 3 as found.

Further, the management program 43 determines whether the print serverconfigured by the print server program 44 has been registered with theOS 41. That is, the management program 43 searched for printersregistered with the OS 41 (procedure #54) and obtains a list of printersfrom the OS 41 (procedure #55). When the print server configured by theprint server program 44 is not included in the list of printers asobtained, the management program 43 registers the print serverconfigured by the print server program 44 with the OS 41 as a virtualprinter corresponding to the found non-compliant printer 3 (procedure#56).

Next, a printing operation with use of the print server program 44 willbe described referring to a sequential chart shown in FIG. 4. Theinformation processing device 1 receives a user operation of a printcommand of a content through the content generating APP 42 beingexecuted (procedure #61). The content generating APP 42 generates aprint job based on the received print command, and registers thegenerated print job with the OS 41 (procedure #62). Then, the OS 41processes the registered print job with use of the driverless printingfunction to generate a print job including the standardized print data.

The OS 41 delivers the print job which designates the virtual printercorresponding to the non-compliant printer 3 as the output destinationto the print server program 44 corresponding to the non-compliantprinter 3 (procedure #63). The print server program 44 searches thenon-compliant printer 3 which is the output destination, and determineswhether the non-compliant printer 3 is in a printable state (procedure#64).

The non-compliant printer 3, when in the printable state, transmitsprinter information thereof to the print server program 44 (procedure#65). Then, based on the printer information, the print server program44 generates, from the standardized print data, individual print datahaving a format which is processible by the non-compliant printer 3.Further, based on the printer information, the print server program 44succeeds print settings included in the print job and makes the printsettings to have a format processible by the compliant printer 3(procedure #66).

Then, the print server program 44 transmits the generated individualprint data and the print settings to the non-compliant printer(procedure #67). The non-compliant printer 3 performs printing based onthe received individual print data (procedure #68), and transmits statusinformation (e.g., printing completed status) to the print serverprogram 44 (procedure #69). The print server program 44 delivers thereceived status information to the OS 41 (procedure #70).

When the printer is searched in procedure #64 but a non-compliantprinter 3 is not found, the print server program 44 delivers statusinformation indicating that the non-compliant printer 3 is in offlinestate to the OS 41 (procedure #71). The OS 41 notifies the statusinformation received in procedure #70 or #71 to the user through, forexample, the content generating APP 42 (procedure #72).

Next, termination of the print server program 44 will be described,referring to a sequential chart shown in FIG. 5. The print serverprogram 44 searches for the non-compliant printer 3 at a particulartiming (procedure #81) when the print server program 44 is notperforming the process of the print job. When there is no reply from thenon-compliant printer 3 and searching is failed, the print serverprogram 44 notifies that the non-compliant printer 3 is not connected tothe user as an error notification (procedure #82).

When the print server program 44 receives an instruction to terminationof the server through, for example, a user operation, if a print serverconfigured by the print server program 44 has been registered, as thevirtual printer, with the OS 41, the print server program 44 deletesregistration of the virtual printer corresponding to the print serverprogram 44 from the OS 41 (procedure #83). Further, the print serverprogram 44 terminates itself (procedure #84). By terminating the printserver program 44 which becomes unnecessary any more, a process load tothe information processing device 1 can be reduced.

Next, operations of respective programs will be described referring toflowcharts shown in FIGS. 6, 8 and 9. It is noted that the procedurenumbers indicated in the following description correspond to theprocedure numbers indicated in the sequential charts shown in FIGS. 3-5.

Firstly, a server startup process performed by the management program 43will be described, referring to a flowchart shown in FIG. 6. The serverstartup process is to be executed by the CPU 11 and is triggered by, forexample, startup of the information processing device 1, a connection ofa printer to the information processing device 1, receipt of a printcommand and the like.

In the server startup process, the CPU 11 firstly determines whether theinformation processing device 1 is in a driverless printing environment(S101). For example, the CPU 11 obtains version information of the OS 41of the information processing device 1, and determines whether the OS 41is implemented with the driverless printing function, and whether anoperation environment of the OS 41 does not accept installation of aprinter driver. Alternatively or optionally, the CPU 11 may determinewhether a printer driver has been installed in the informationprocessing device 1. When it is determined that the informationprocessing device 1 is not in the driverless printing environment (S101:NO), the CPU 11 terminates the server startup process.

When the information processing device 1 is in an environment where theprinter driver can be installed, by installing the printer driver, sincethe driverless printing function does not need to be executed, aprocessing load to the information processing device 1 can be reduced.Further, by checking the version of the OS 41, it is known whetherversion up of the OS 41 has been made. When, for example, the operationenvironment has been changed to the driverless printing environment bythe version up of the OS 41 from the environment where the printerdriver can be installed, the management program 43 and the print serverprogram 44 can be appropriately functioned. Therefore, the informationprocessing device 1 can provide a printing environment which issubstantially the same as the previous printing environment, and theuser can use the non-compliant printer 3 with the same usability asbefore.

When the information processing device 1 is in the driverless printingenvironment (S101: YES), the CPU 11 searches for the printers connectedto the information processing device 1 sequentially (S102). Then, theCPU 11 determines whether the found printer is the non-compliant printer3 (S103, procedure #51). Step S103 is an example of a first connectiondetermining process.

For example, the CPU 11 inquires each of the printers connected to theinformation processing device 1 through the network I/F 16 anddetermines whether each of the printers has a capability of complyingwith the driverless printing function. When, for example, theinformation processing device 1 has a list of external devices connectedto the information processing device 1, the CPU 11 may performconnection check of the non-compliant printer(s) 3 in the list in S103.

When it is determined that the non-compliant printer 3 is found (S103:YES), the CPU 11 obtains the printer information therefrom (S104,procedure #52). The CPU 11 obtains, for example, printer modelinformation, version information, data formats of the print datasupported by the printer and the like as printer information. The CPU 11may obtain the printer information by inquiring the printer 3 or obtainfrom a list of external devices.

Further, the CPU 11 determines whether the print server program 44corresponding to the found non-compliant printer 3 is running (S105).Step S105 is an example of a running determination process. When the CPU11 determines that the print server program 44 is not running (S105:NO), the CPU 11 determines whether the print server program 44corresponding to the non-compliant printer 3 is running in anotherdevice which is communicatable with the information processing device 1(S106). It is noted that step S106 is also an example of the runningdetermination process.

FIG. 7 shows an information processing system in which a plurality ofinformation processing devices are connected so as to be mutuallycommunicatable. In the example shown in FIG. 7, three informationprocessing devices (i.e., the information processing devices 1, a secondinformation processing device 100 and a third information processingdevice 200 are provided. The three information processing devices 1, 100and 300 can use the same non-compliant printer 3. When the print serverprogram 44 is running in the second information processing device 100,the information processing device 1 can make use of the print serverprogram 44 running in the second information processing device 100. Insuch a case, by registering the print server configured by the printserver program 44 of the second information processing device 100 withthe OS 41 as the virtual printer, the information processing device 1can use the print server program 44 of the second information processingdevice 100. In this case, the print server configured by the printserver program 44 running on the second information processing device100 is an example of an existing print server.

As shown in FIG. 7, the information processing device 1 can deliver thestandardized print data to the second information processing device 100,cause the print server program 44 running on the second informationprocessing device 100 to generate the individual print data, and causeanother information processing device 100 to transmit the individualprint data to the non-compliant printer 3. According to such aconfiguration, the information processing device 1 does not need tostart up the print server program 44 therein, and a process load to theinformation processing device 1 can be reduced.

When it is determined that the print server program 44 is not running onnone of the plurality of the information processing devices 1, 100 and200 (S106: NO), the CPU 11 starts up the print server program 44corresponding to the found non-compliant printer 3 (S107, procedure#53). Step S107 is an example of a startup process.

When it is determined that the print server program 44 corresponding tothe found non-compliant printer 3 is running on another device (S106:YES), the CPU 11 determines whether the print server configured by theprint server program 44 has been registered with the OS (S108). Forexample, the CPU 11 inquires the OS 41 to obtain a list of printersregistered with the OS 41 (procedures #54 and #55), and determineswhether the print server registered as the virtual printer correspondingto the non-compliant printer 3 is included in the list.

After execution of S107, or when it is determined that the print servercorresponding to the non-compliant printer 3 is not registered with theOS 41 (S108: NO), the CPU 11 registers the print server configured bythe print server program 44 with the OS 41 as the virtual printer (S109,procedure #56). Step S109 executed after execution of S107 is an exampleof a print server registration process. Further, step S109 executedafter it is determined that the print server corresponding to thenon-compliant printer 3 is not registered with the OS 41 (S108: NO) isan example of an existing print server registration process.

In S109, the CPU 11 registers the print server configured by the printserver program 44 with use of a model name or a nickname of the detectednon-compliant printer 3. Optionally, a user designation of the name maybe accepted. By registering the print server configured by the printserver program 44 with the OS 41 as the non-compliant printer 3, thenon-compliant printer 3 is one of selectable printers when a printcommand is made though the content generating APP 42 and the like.

When it is determined that the found printer is not the non-compliantprinter 3 (S103: NO), when it is determined that the print serverprogram 44 is running (S105: YES), when it is determined that the printserver configured by the print server program running on another deviceis registered with the OS 41 (S108: YES) or after execution of S109, theCPU 11 determines whether searching for printers has been completed(S110). When it is determined that searching has not been completed(S110: NO), the CPU 11 returns to S102 and further searches forprinters. When it is determined that searching has been completed (S110:YES), the CPU 11 terminates the server startup process.

Next, a print server procedure in accordance with the print serverprogram 44 will be descried, referring to a flowchart shown in FIG. 8.The print server process is performed by the CPU 11 in response to theprint server program 44 being started up in S107 of the server startupprocess.

In the print server process, the CPU 11 determines whether there existsa print job designating the virtual printer corresponding to thenon-compliant printer 3 as the output destination (S201). The print jobis created in response to, for example, receipt of the print command bythe content generating APP 42 and is registered with the OS 41(procedure #62 of FIG. 4). The CPU 11 periodically transmits inquiry tothe OS 41 (S201). Alternatively, the CPU 11 monitors a printer spoolerof the OS 41 to determine whether there exists a corresponding printjob. Further alternatively, the CPU 11 may receive a print jobdesignating the virtual printer corresponding to the non-compliantprinter 3 as the output destination from another information processingdevice connected to the information processing device 1.

When it is determined that the there exists a print job (S201: YES), theCPU 11 searches for the non-compliant printer 3 corresponding to theprint server program 44 (S202, procedure #64), and determines whetherthe non-compliant printer 3 has been found (S203). When it is determinedthat the non-compliant printer 3 is found (S203: YES), the CPU 11performs the printing process (S204). The printing process is a processcausing, by the print server program 44, the non-compliant printer 3 toperform printing.

The printing process will be described referring to a flowchart shown inFIG. 9. In the printing process, the CPU 11 firstly obtains a print job(S301). Step S301 is an example of a receiving process. Further, the CPU11 obtains print data included in the obtained print job (S302). Theprint data included in the print job is data generated by the driverlessprinting function, which is, for example, the standardized print data.The print data included in the print job is an example of original printdata.

Then, the CPU 11 determines whether the print data included in the printjob is data of a format which is supported by the non-compliant printer3 (S303). Step S303 is an example of a format determining process. Theformat supported by the non-compliant printer 3 is not limited only tothe individual print data. Further, the print data generated by thedriverless printing function is not necessarily be limited to thestandardized print data. That is, there is a possibility that thenon-compliant printer 3 can print out the print data even if it isgenerated by the driverless printing function.

When it is determined that the print data included in the print job isof the format which is not supported by the non-compliant printer 3(S303: NO), the CPU 11 converts the print data into the individual printdata which is print data supported by the non-compliant printer 3 (S304,procedure #66).

It is note that conversion of the print data may be performed by theprint server program 44 or another program such as the managementprogram 43. For example, the CPU 11 may deliver the print data includedin the print job and information regarding the print data format whichcan be processed by the non-compliant printer 3 to the managementprogram 43, and request the management program 43 to perform theconversion of the print data. Step S304 is an example of a conversionprocess.

When the management program 43 is configured to convert the print data,the print server program 44 does not need to perform the conversionprocess, and thereby the size of an individual print server program 44can be downsized. In particular, even if a plurality of print serverprograms 44 are running, the conversion can be done by a single program(i.e., the management program 43), the size of the program running inthe information processing device 1 can be downsized. On the other hand,if the conversion of the print data is performed by the respectiveindividual print server programs 44, data exchange between theindividual print server programs 44 and the management program 43 can beomitted, thereby speed-up of the conversion of the print data beingachieved.

The CPU 11 obtains the converted individual print data (S305). Step S305is an example of a print data obtaining process. When it is determinedthat the print data included in the print job is the data supported bythe non-compliant printer 3 (S303: YES), or after execution of S305, theCPU 11 succeeds the print settings (S306, procedure #66). When decisionin S303 is “YES”, step S302 is an example of the print data obtainingprocess.

The print settings include, for example, a setting of the number ofcopies of print-outs, a setting of a both-side printing, and the like.It is noted that the non-compliant printer 3 is not necessarily be ableto process commands of the print settings added by the driverlessprinting function. The CPU 11 generates a print job, in which the printsettings is processible by the non-compliant printer 3, by convertingthe commands of the print settings according to the driverless printingfunction to command of the print settings according to the non-compliantprinter 3.

The CPU 11 controls the network I/F 16 or the USB I/F 17 to transmit theprint job including the print settings succeeded in S306 and the printdata obtained in S302 or S305 to the non-compliant printer 3 (S307).Step S307 is an example of a transmitting process. Further, the CPU 11determines whether transmission has been completed (S308).

When it is determined that transmission has been completed (S308: YES),the CPU 11 delivers the status information indicating completion oftransmission to the OS 41 (S309). When it is determined thattransmission has not been completed due to an error during transmission(S308: NO), the CPU 11 delivers the status information indicatingoccurrence of an error (S310). After execution of S309 or S310, the CPU11 terminates the printing process and returns to the print serverprocess. It is noted that, when the print job is one received fromanother device, the status information may be transmitted to thetransmission source in S309 or in S310.

In FIG. 8, after execution of S204, the CPU 11 returns to S201 anddetermines whether there exists a print job. When it is determined thatthere is no print job (S201: NO), the CPU 11 determines whether thepresent timing is a particular timing (S205). The CPU 11 determines thatthe present timing is the particular timing when, for example, the printserver program 44 is running and a particular time period has elapsedsince a startup thereof or previous printing process. It is noted thatthe particular timing may be only once, or the CPU 11 may periodicallydetermine the particular timing.

When it is determined that the present timing is the particular timing(S205: YES), the CPU 11 searches for the non-compliant printer 3corresponding to the print server program 44 (S206, procedure #81). StepS206 is the same process as S202. Then, the CPU 11 determines whetherthe non-compliant printer 3 has been found (S207). Step S207 is anexample of a second connection determining process.

When it is determined that the non-compliant printer 3 has not beenfound in the search performed in S202 or S206 (S203: NO, or S207: NO),the CPU 11 notifies an error (S208). That is, the CPU 11 controls, forexample, the user I/F 15 to display error information indicating thatthe non-compliant printer 3 is offline. When the non-compliant printer 3is offline, it is impossible to cause the non-compliant printer toperform printing. By not performing the printing process when decisionin S203 or S207 is “NO”, the process load to the CPU 11 can be reduced.

Next, the CPU 11 determines whether the print server program 44 is to beterminated (S209). The CPU 11 controls, for example, the user I/F 15 todisplay a screen inquiring the user whether the print server program 44is to be terminated, and receives the instruction by the user.Alternatively, the CPU 11 may determine that the print server program 44is to be terminated when a particular condition (e.g., an offline stateof the non-compliant printer 3 continuing for a particular period ormore) is satisfied.

When it is determined that the present timing is not the particulartiming (S205: NO), when the non-compliant printer 3 is found (S207:YES), or when it is determined that the print server program 44 is notto be terminated (S209: NO), the CPU 11 returns to S201 and determineswhether there exists a print job.

When it is determined that the print server program 44 is to beterminated (S209: YES), the CPU 11 determines whether the print serverconfigured by the print server program 44 is registered with the OS 41(S210). When it is determined that the print server is registered withthe OS 41 (S210: YES), the CPU 11 deletes the registration (S211).

As registration of the print server configured by the print serverprogram 44 is deleted, it becomes impossible to select the virtualprinter corresponding to the non-compliant printer 3 from a normal APP,it is suppressed that the user inadvertently inputs a print command. Itis noted that, when the print server configured by the print serverprogram 44 of the information processing device 1 has been registered inanother device, a notification to delete the registration may betransmitted to another device.

After execution of S211, or when it is determined that the printer hasnot been registered with the OS 41 (S210: NO), the CPU 11 terminates theprint server program 44 (S212) and terminates the print server process.Step S212 is an example of a termination process. It is noted that, whenthe print server program 44 is terminated, the termination may benotified to the user. When the non-compliant printer 3 is offline, it isimpossible to make the non-compliant printer 3 perform printing.Therefore, by terminating the print server program 44, the process loadto the information processing device 1 can be reduced.

As describe in detail above, according to the illustrative embodiment,when the non-compliant printer 3 which is not compliant with thedriverless printing function is connected to the information processingdevice 1, the management program 43 starts up the print server program44 corresponding to the non-compliant printer 3. Then, the print serverprogram 44 receives the print job through the OS 41, obtains theindividual print data processible by the non-compliant printer 3 basedon the standardized print data of the received print job, and transmitsthe individual print data to the non-compliant printer 3. Accordingly,even if the information processing device 1 is in the environment wherethe printer driver for the non-compliant printer 3 is not installed, itis possible to make the non-compliant printer 3 perform printing.

It is noted that the configuration of the above-described embodiment isonly an example and is not directed to limit the aspects of the presentdisclosures. Therefore, the technique in the present disclosures can bemodified and/or improved in various ways without departing from theaspects of the present disclosures. For example, the number of theinformation processing devices or the printers configured theillustrative embodiment are not limited to those shown in FIG. 1 or FIG.7. For example, the compliant printer 2 may not be connected to theinformation processing device 1.

For example, the print server program 44 running on another device maynot be used. For example, S106 of the server startup process may bedeleted, and control may proceed to S107 when determination of S105 is“NO”. It should be noted, however, by making use the print serverprogram 44 of another device, the process load to the informationprocessing device 1 can be reduced.

For example, determination whether the print data of the print jobgenerated by the driverless printing function is supported by thenon-compliant printer 3 may not be made. That is, S303 of the printingprocess may be deleted, and conversion of the print data may beperformed every time. It should be noted, however, there may exit printdata supported by the non-compliant printer 3, the process load to theinformation processing device 1 is reduced by executing S303.

For example, searching for printers may be performed when the print datais transmitted. That is, even if the non-compliant printer 3 is offline,conversion of the print data may be completed. For example, instead ofS202 and S203 of the print server process, searching of thenon-compliant printer 3 may be performed before S307 of the printingprocess.

Further, even if the non-compliant printer 3 is offline, the printserver program 44 may not be terminated. Further, a notification to theuser when the print server program 44 is terminated may be omitted.

It is noted that the processes disclosed above may be performed by asingle CPU, a plurality of CPU's, hardware such as an ASIC, orcombination thereof. Further, the processes as disclosed may be realizedin various ways such as a method, a non-transitory recording mediumstoring instructions causing a computer to perform such a method, andthe like.

What is claimed is:
 1. A non-transitory computer-readable recordingmedium containing computer-executable instructions to be executed by acontroller of an information processing device, the instructionsincluding first instructions constituting a management program andsecond instructions constituting a print server program, wherein thefirst instructions cause, when executed by the controller, theinformation processing device to perform: a first connection determiningprocess of determining whether a particular printer is connected througha communication interface of the information processing device; when itis determined in the first connection determining process that theparticular printer is connected, a running determination process ofdetermining whether the print server program constituted by the secondinstructions corresponding to the particular printer is running; when itis determined in the running determination process that the print serverprogram constituted by the second instructions is not running, a startupprocess of starting up the print server program constituted by thesecond instructions; and when the print server program constituted bythe second instructions is started up in the startup process, a printserver registration process of registering a print server, which isconfigured by the started up print server program, with an operatingsystem of the information processing device as a virtual printer, andwherein the second instructions cause, when executed by the controller,the information processing device to perform: a receiving process ofreceiving, through the operating system, a print job designating thevirtual printer as an output destination; when the print job designatingthe virtual printer as the output destination is received in thereceiving process, a print data obtaining process of obtaining printdata having a particular format printable by the particular printerbased on the print job; and a transmitting process of transmitting theprint data obtained in the print data obtaining process to theparticular printer.
 2. The non-transitory computer-readable recordingmedium according to claim 1, wherein, in the print data obtainingprocess, the print server program constituted by the second instructionsdelivers original print data, which has a format different from theparticular format and includes in the print job, to the managementprogram constituted by the first instructions, and requests themanagement program constituted by the first instructions to convert theoriginal print data to the print data having the particular format,wherein the first instructions cause, when executed by the controller,the information processing device to perform a conversion process ofconverting the original print data delivered in the print data obtainingprocess to the print data having the particular format, and wherein, inthe print data obtaining process, the print server program constitutedby the second instructions obtains the print data converted in theconversion process by the management program after the print serverprogram requests for conversion of the print data to the print datahaving the particular format.
 3. The non-transitory computer-readablerecording medium according to claim 1, wherein, in the print dataobtaining process, the print server program constituted by the secondinstructions converts original print data included in the print job andhaving a format different from the particular format to print datahaving the particular format.
 4. The non-transitory computer-readablerecording medium according to claim 1, wherein the second instructionscause, when executed by the controller, the information processingdevice to perform a format determining process of determining whetheroriginal print data included in the print job received in the receivingprocess is print data having a format printable by the particularprinter, and wherein, when it is determined in the format determiningprocess that the original print data has the format printable by theparticular printer, the print server program constituted by the secondinstructions obtains the original print data as the print data havingthe particular format in the print data obtaining process.
 5. Thenon-transitory computer-readable recording medium according to claim 1,wherein, in the running determination process, it is determined that theprint server program is running even when the print server program isrunning in an other information processing device connected to theinformation processing device, and wherein, even if it is determined inthe running determination process that the print server program isrunning, when an existing print server constituted by the print serverprogram of the other information processing device is not registeredwith the operating system, the first instructions cause the informationprocessing device to perform existing print server registration processof registering the existing print server with the operating system as aprinter.
 6. The non-transitory computer-readable recording mediumaccording to claim 1, the second instructions cause the informationprocessing device to perform: a second connection determining process ofdetermining, at a particular timing when the print server program isbeing executed, whether the particular printer is connected through thecommunication interface; and when it is determined, in the secondconnection determining process, that the particular printer is notconnected, a termination process of terminating the print serverprogram.
 7. The non-transitory computer-readable recording mediumaccording to claim 6, wherein, in the termination process, the secondinstructions cause the information processing device to deleteregistration of the print server from the operation system.
 8. Thenon-transitory computer-readable recording medium according to claim 1,in the print data obtaining process, the second instructions cause theinformation processing device to perform: when the print job is receivedin the receiving process, determining whether the particular printer isconnected through the communication interface; and when it is determinedthat the particular printer is connected, obtaining the print datahaving the particular format.
 9. The non-transitory computer-readablerecording medium according to claim 1, wherein, even if it isdetermined, in the first connection determining process, that theparticular printer is connected, when a printer driver programcorresponding to the particular printer is stored in a memory of theinformation processing device, the first instructions cause theinformation processing device not to perform the running determinationprocess or the startup process.
 10. The non-transitory computer-readablerecording medium according to claim 1, wherein, even if it is determinedin the first connection determining process, that the particular printeris not connected, when a version of the operating system is a particularversion, the first instructions cause the information processing devicenot to perform the running determination process or the startup process.11. A method of controlling an information processing device, the methodcomprising: determining whether a particular printer is connectedthrough a communication interface of the information processing device;when it is determined that the particular printer is connected,determining whether a print server program corresponding to theparticular printer is running; when it is determined that the printserver program is not running, starting up the print server program;when the print server program is started up, registering a print server,which is configured by the started up print server program, with anoperating system of the information processing device as a virtualprinter; receiving, through the operating system, a print jobdesignating the virtual printer as an output destination; when the printjob designating the virtual printer as the output destination isreceived, obtaining print data having a particular format printable bythe particular printer based on the print job; and transmitting theobtained print data to the particular printer.